package com.cloud.wms.injection.components;

import android.content.Context;
import android.content.res.Resources;

import com.cloud.core.tools.ActivityManager;
import com.cloud.core.tools.StorageManager;
import com.cloud.core.tools.ToastManager;
import com.cloud.printer.FineExPrinter;
import com.cloud.wms.app.FineExApplication;
import com.cloud.wms.http.HttpAPI;
import com.cloud.wms.injection.modules.ApplicationModule;
import com.cloud.wms.injection.qualifiers.ForApplication;
import com.cloud.wms.tools.CrashHandler;
import com.cloud.wms.ui.main.entity.LoginCache;
import com.tencent.mmkv.MMKV;

import javax.inject.Singleton;

import dagger.Component;


/**
 * Created by Tanghaibo
 * 2018/3/21
 * description: Application Component
 */

@Singleton
@Component(
        modules = {
                ApplicationModule.class
        }
)
public interface ApplicationComponent {
    @ForApplication
    Context appContext();

    Resources resources();

    ActivityManager actManager();

    ToastManager toast();

    StorageManager storage();

    MMKV kv();

    CrashHandler crash();

    HttpAPI http();

    LoginCache loginCache();

    FineExPrinter printer();

    void inject(FineExApplication fineexApplication);
}
